package com.hlw.hr_man.dao;

import java.util.List;

import com.hlw.hr_man.Model.EmployeeModel;

/**
 * 员工dao层操作的接口
 * 
 * @author Administrator
 *
 */
public interface EmployeeDao {
	/**
	 * 通过编号和密码找到员工号
	 * 
	 * @param enumber
	 * @param epwd
	 * @return
	 */
	
	public EmployeeModel findEmpByEnumAndEpwd(String enumber, String epwd);

	/**
	 * 获取当前员工信息的总数
	 * 
	 * @return
	 */
	public int getEmployeeCount();

	/**
	 * 得到所有员工的总数（模糊查询）
	 * 
	 * @param searchname
	 * @return
	 */
	public int getEmployeeCount(String searchname);

	/**
	 * 获取当前员工信息
	 * 
	 * @param start
	 * @param pageSize
	 * @return 员工集合
	 */
	public List<EmployeeModel> findAllEmployee(int start, int pageSize);

	/**
	 * 按名字获取当钱员工信息（模糊查询）
	 * 
	 * @param start
	 * @param pageSize
	 * @param searchname
	 * @return 员工集合
	 */
	public List<EmployeeModel> findAllEmployee(int start, int pageSize, String searchname);

	/**
	 * 获取员工数量
	 * 
	 * @return
	 */
	public int getEmployeesConut();

	/**
	 * 获取员工数量
	 * 
	 * @param start
	 * @param pageSize
	 * @return
	 */
	public List<EmployeeModel> getEmployees(int start, int pageSize);

	/**
	 * 通过部门名字得到员工总数 （重载模糊查询）
	 * 
	 * @param searchname
	 * @param searchtype
	 * @return
	 */
	public int getEmployeeCount(String searchname, String searchtype);

	/**
	 * 按部门名字获取当钱员工信息（重载模糊查询）
	 * 
	 * @param start
	 * @param pageSize
	 * @param searchname
	 * @param searchtype
	 * @return
	 */
	public List<EmployeeModel> findAllEmployee(int start, int pageSize, String searchname, String searchtype);

	/**
	 * 添加员工信息
	 * 
	 * @param emp
	 * @return
	 */
	public int insertEmployee(EmployeeModel emp);

	/**
	 * 通过e_number得到 员工
	 * 
	 * @param e_number
	 * @return
	 */
	public EmployeeModel getEmployeeByEnumber(String e_number);
	
	/**
	 * 修改员工信息
	 * @param emp
	 * @return
	 */
	public int updateEmployee(EmployeeModel emp);
    public int updateRoleToNormal(String enumber);
	public int findEmployeeByRoleid(int roleid);
	public int updateRoleToManger(String e_number,int roleid);
		
	/**
	 * 删除员工信息
	 * @param e_id  数组
	 * @return
	 */
	public int deleteEmployees(String[] e_id);

	public int updateMyInfo(EmployeeModel employee);

	public int upatePassword(String password, int e_id); 
	    	
	/**
	 * 导入文件加载员工
	 * @param path
	 * @return
	 */
	public boolean uploadEmployees(String path);
	/**
	 * 验证员工编号是否存在
	 * @param e_number
	 * @return
	 */
    public int validateE_number(String e_number);
}
	

